<?php

/**
 * @desc Filters' chain wrapper. 
 *
 */
abstract class Kernel_Wrapper 
{

    /**
     * @desc Filters' chain which have to be wrapped. 
     *
     * @var array
     */
    private $filters = array();

    public function __construct($filters) 
    {
        $this->filters = $filters;
    }

    /**
     * @desc Wrap filters' chain in exception handler. 
     *
     */
    abstract public function run();

    /**
     * @desc Start filters' chain. 
     *
     */
    protected function _chain() 
    {
        // go ahead
        Application::chain($this->filters);
    }
    
}
